home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / pcfig4th.zip / GLOSSARY < prev    next >
Text File  |  1983-07-30  |  15KB  |  299 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6. ;=C   !        pop stack to memory - "store"        n addr --
  7. ;=:   !CSP    save SP at CSP                --
  8. ;=:   #        convert one digit of d1 to ASCII    d1 -- d2
  9. ;=:   #>    end number formatting            d -- addr count
  10. ;=#   #BUFF    total number of block buffers        -- n
  11. ;=:   #S    process all significant digits of d1    d1 -- 0.
  12. ;=:   '        find next input word in dictionary    -- PFA
  13. ;=:   (        begin a comment ended by ')'        --
  14. ;=C   (+LOOP)    (LOOP) with increment on S1        n --
  15. ;=:   (.")    run time code for ."            --
  16. ;=C+  (2ARR)    2d array addressing primitive        n1 n2 addr1 -- addr2
  17. ;=C+  (2CARR)    2d byte array addressing primitive    n1 n2 addr1 -- addr2
  18. ;=:   (;CODE)    run time code for ;CODE            --
  19. ;=:   (ABORT)    error function when WARNING is -1    --
  20. ;=C+  (ARRAY)    1d array addressing primitive        n1 addr1 -- addr2
  21. ;=C+  (BLKRD)    block read primitive            --
  22. ;=C+  (BLKWRT)    block write primitive            --
  23. ;=C+  (CARR)    1d byte array addressing primitive    n addr1 -- addr2
  24. ;=C+  (CLOSE)    close FCB, f is TRUE on error        FCB -- f
  25. ;=C*  (CR)    console newline primitive        --
  26. ;=C+  (CREATE)    create file, f is TRUE on error        FCB -- f
  27. ;=C   (DO)    run-time loop initialization        n2 n1 --
  28. ;=C*  (EMIT)    console char. output primitive        c --
  29. ;=C+  (FBLKRD)    read n blocks from file            FCB n -- f
  30. ;=C+  (FBLKWRT)    write n blocks to file            FCB n -- f
  31. ;=C*  (FIND)    dictionary search primtive        a1 NFA -- [PFA b] f
  32. ;=C+  (FNAME)    parse filename at addr using mode n    FCB addr1 n -- addr2 f
  33. ;=C*  (KEY)    read console primitive            -- c
  34. ;=:   (LINE)    convert a line/screen to addr/count    l s -- addr count
  35. ;=C   (LOOP)    execution time loop code        --
  36. ;=:   (NUMBER)    ASCII to binary conversion primitive    d1 addr1 -- d2 addr2
  37. ;=C+  (OPEN)    open FCB, f is TRUE if error        FCB -- f
  38. ;=C+  (READ)    read next record from file to addr    FCB addr -- f
  39. ;=C+  (WRITE)    write next record to file from addr    FCB addr -- f
  40. ;=C+  (XOF)    primitive compiled by CASE..OF        n1 n2 -- [n1]
  41. ;=:   *        16-bit signed multipication        n1 n2 -- n1*n2
  42. ;=:   */    scale n1 by the ratio of n2 to n3    n1 n2 n3 -- nquot
  43. ;=:   */MOD    scale n1 by the ratio of n2 to n3    n1 n2 n3 -- nrem nquot
  44. ;=C   +        16-bit addition                n1 n2 -- nsum
  45. ;=C   +!    add to a memory location        n addr --
  46. ;=:   +-    apply the sign of n2 to n1        n1 n2 -- n3
  47. ;=:*  +BUF    advance addr to next buffer        addr1 -- addr2
  48. ;=:   +LOOP    end of DO..+LOOP structure        addr 3 --
  49. ;=:   +ORIGIN    word for accessing data in low memory    n -- addr
  50. ;=:   ,        compile n into the dictionary        n --
  51. ;=C   -        16-bit subtraction            n1 n2 -- n1-n2
  52. ---------- 4TH-DISK.ASM
  53. ---------- 4TH-FILE.ASM
  54. ---------- 4TH-MAIN.ASM
  55. ---------- 4TH-SYSD.ASM
  56. ---------- 4TH-XTNS.ASM
  57. ;=:   -->    continue with next screen        --
  58. ;=:   -DUP    duplicate the top number if it isn't 0    n -- n [n]
  59. ;=:   -FIND    search dictionary for next input word    -- [PFA b] f
  60. ;=:   -TRAILING    adjust addr/n to avoid trailing blanks    addr n1 -- addr n2
  61. ;=:   .        print a 16-bit number            n --
  62. ;=:   ."    print the following string        --
  63. ;=:   .LINE    type line n1 in screen n2        n1 n2 --
  64. ;=:   .R    print n1 right-aligned in n2 columns    n1 n2 --
  65. ;=:   /        16-bit signed division            n1 n2 -- nquot
  66. ;=:   /MOD    16-bit signed division with remainder    n1 n2 -- nrem nquot
  67. ;=#   0        zero                    -- 0
  68. ;=C   0<    test top of stack for negative value    n -- f
  69. ;=C   0=    test top of stack for zero        n -- f
  70. ;=C   0BRANCH    branch if f is zero            f --
  71. ;=#   1        one                    -- 1
  72. ;=C   1+    increment the top stack item        n -- n+1
  73. ;=C+  1-    decrement the top stack item        n -- n-1
  74. ;=#   2        two                    -- 2
  75. ;=C   2!    32-bit store                d addr --
  76. ;=C   2+    add 2 to the top stack item        n -- n+2
  77. ;=C+  2-    subtract 2 from the top stack item    n -- n-2
  78. ;=C   2@    fetch 32-bit number            addr -- d
  79. ;=C   2DUP    duplicate the top two stack items    n1 n2 -- n1 n2 n1 n2
  80. ;=#   3        three                    -- 3
  81. ;=C   :        begin colon definition            --
  82. ;=:   ;        end colon definition            --
  83. ;=:   ;CODE    end colon compilation, start CODE    --
  84. ;=C   ;S    end of screen or run time colon word    --
  85. ;=C   <        test for top number > second number    n1 n2 -- f
  86. ;=:   <#    begin number formatting            --
  87. ;=:   <BUILDS    define compile time behavior        --
  88. ;=:   <nul>    0 in input: resets interpreter        --
  89. ;=:   =        test top two items for equality        n1 n2 -- f
  90. ;=:   >        test for second item > top of stack    n1 n2 -- f
  91. ;=C   >R    push parm. stack to return stack    n --
  92. ;=:   ?        print the value at addr            addr --
  93. ;=:   ?COMP    issue a message if not compiling    --
  94. ;=:   ?CSP    issue a message if SP <> (CSP)        --
  95. ;=:   ?ERROR    issue error message m if f is TRUE    f m --
  96. ;=:   ?EXEC    issue a message if not executing    --
  97. ;=C+  ?FIRST    search for first matching file        FCB addr -- f
  98. ;=:   ?LOADING    issue a message if not loading        --
  99. ;=C+  ?NEXT    search for next matching file        addr FCB -- f
  100. ;=:   ?PAIRS    issue a message if n1 <> n2        n1 n2 --
  101. ;=:   ?STACK    check if the stack is out of bounds    --
  102. ;=C   ?TERMINAL    console status                -- f
  103. ;=C   @        push memory location to stack        addr -- n
  104. ;=U+  @BLKRD    CFA of function to read one block    -- addr
  105. ;=U+  @BLKWRT    CFA of function to write one block    -- addr
  106. ;=?+  @BREAK    CFA of function to get control on ^C    -- addr
  107. ;=U+  @CR    CFA of function to output newline    -- addr
  108. ;=U+  @EMIT    CFA of function to do character output    -- addr
  109. ;=U+  @KEY    CFA of function to do character input    -- addr
  110. ;=:   ABORT    clear stacks and begin execution    --
  111. ;=:   ABS    take the absolute value of n1        n1 -- n2
  112. ;=:   AGAIN    end of BEGIN..AGAIN infinite loop    addr 1 --
  113. ;=:   ALLOT    reserve n bytes in the dictionary    n --
  114. ;=C   AND    bitwise AND                n n -- n
  115. ;=#   B/BUF    size of disk buffers in bytes        -- 1024
  116. ;=#   B/SCR    number of disk buffers per screen    -- 1
  117. ;=C+  B/SEC    get bytes/sector            -- n
  118. ;=:   BACK    compile a backward branch offset    target --
  119. ;=U   BASE    current number base for i/o        -- addr
  120. ;=:   BEGIN    starting point of looping structures    -- HERE 1
  121. ;=#   BL    ASCII blank                -- 32
  122. ;=:   BLANKS    fill n bytes at addr with blanks    addr n --
  123. ;=U   BLK    current block, 0 if terminal        -- addr
  124. ;=#+  BLK/DRIVE    number of 1K blocks per drive        -- n
  125. ;=:+  BLKRD    read one block from disk to addr    addr blk --
  126. ;=:+  BLKWRT    write one block to disk from addr    addr blk --
  127. ;=:*  BLOCK    get block n                n -- addr
  128. ;=:+  BLOCK-READ    read one block to addr        addr blk --
  129. ;=:+  BLOCK-WRITE    write one block from addr    addr blk --
  130. ;=C   BRANCH    adds an inline offset to IP        --
  131. ;=:*  BUFFER    assign an available buffer to block n    n -- addr
  132. ;=C*  BYE    exit FORTH                ? -- ?
  133. ;=C   C!    byte store - "see-store"        b addr --
  134. ;=:   C,    compile a byte into the dictionary    b --
  135. ;=#   C/L    characters per line            -- 64
  136. ;=C   C@    push byte location to stack        addr -- b
  137. ;=:   CFA    convert a PFA to CFA            PFA -- CFA
  138. ;=C   CMOVE    byte block move                a1 a2 n --
  139. ;=:*  COLD    full initialization and restart        --
  140. ;=:   COMPILE    compile the following word at run time    --
  141. ;=:   CONSTANT    define a symbolic constant        n --
  142. ;=U   CONTEXT    current vocabulary for execution    -- addr
  143. ;=:   COUNT    prepare to type a string        addr -- addr+1 n
  144. ;=:*  CR    output carriage return/line feed    --
  145. ;=:*  CREATE    create a dictionary header        --
  146. ;=U   CSP    temporary storage for Current SP    -- addr
  147. ;=U   CURRENT    current vocabulary for definitions    -- addr
  148. ;=:+  D&RCALC    set drive/record for block n        n --
  149. ;=C   D+    32-bit addition                d1 d2 -- dsum
  150. ;=:   D+-    apply the sign of n to d1        d1 n -- d2
  151. ;=:   D.    print a 32-bit number            d --
  152. ;=:   D.R    print d right-aligned in n columns    d n --
  153. ;=:   DABS    take the absolute value of d1        d1 -- d2
  154. ;=C+  DATE!    set system date                n1 n2 n3 --
  155. ;=C+  DATE@    fetch system date            -- n1 n2 n3
  156. ;=:   DECIMAL    set the current number base to 10    --
  157. ;=:   DEFINITIONS    set CURRENT to CONTEXT        --
  158. ;=C   DIGIT    convert c to binary using base n1    c n1 -- [n2] f
  159. ;=C+  DISK    set default drive to n, n2 is #drives    n -- n2
  160. ;=?   DISK-ERROR    status of last disk operation    -- addr
  161. ;=C+  DISK@    return default disk number        -- n
  162. ;=:   DLITERAL    compile d to be used at run time    d --
  163. ;=C   DMINUS    32-bit two's complement            d -- -d
  164. ;=:   DO    start of DO..LOOP structure        -- HERE 3
  165. ;=:   DOES>    define run time behavior        --
  166. ;=U   DP    top address used in dictionary        -- addr
  167. ;=U   DPL    Decimal Point Locator             -- addr
  168. ;=:   DR0    set offset for drive zero        --
  169. ;=:   DR1    set offset for drive one        --
  170. ;=?   DRIVE    disk drive last accessed        -- addr
  171. ;=C   DROP    throw out top stack item        n --
  172. ;=?+  DTA    disk transfer address last used        -- addr
  173. ;=C   DUP    duplicate the top stack item        n -- n n
  174. ;=:   ELSE    optional part of IF..ELSE..THEN        addr 2 -- HERE 2
  175. ;=:*  EMIT    char output                c --
  176. ;=:*  EMPTY-BUFFERS    wipe out disk buffers        --
  177. ;=C   ENCLOSE    text scanning primitive            a1 c -- a1 n1 n2 n3
  178. ;=:   END    synonym for UNTIL            addr 1 --
  179. ;=:   ENDIF    end of IF..ELSE..THEN structure        addr 2 --
  180. ;=:   ERASE    fill n bytes at addr with 0's        addr n --
  181. ;=:   ERROR    system error handler - n is line no.    n -- [IN BLK]
  182. ;=C   EXECUTE    executes the word at CFA        CFA -- ?
  183. ;=:   EXPECT    input up to n characters to addr    addr n --
  184. ;=C+  FDEL    delete file                FCB -- f
  185. ;=U   FENCE    pointer to protected dictionary        -- addr
  186. ;=C   FILL    fill n bytes at address with c        addr n c --
  187. ;=#   FIRST    address of lowest disk buffer        -- addr
  188. ;=:*  FLUSH    empty buffers, saving changed ones    --
  189. ;=:*  FORGET    chop off the top of the dictionary    --
  190. ;=:   FORTH    FORTH vocabulary header            --
  191. ;=C+  FREN    rename file                addr -- f
  192. ;=:   HERE    next available dictionary location    -- addr
  193. ;=:   HEX    set the current number base to 16    --
  194. ;=U   HLD    text pointer used in number formatting    -- addr
  195. ;=:   HOLD    insert char in formatted output        c --
  196. ;=C   I        leave index value            -- n
  197. ;=:   ID.    print dictionary name field        NFA --
  198. ;=:   IF    conditional branch structure        -- 2
  199. ;=:   IMMEDIATE    mark the latest word to be executed    --
  200. ;=U   IN    current character in input stream    -- addr
  201. ;=:   INDEX    print line 0 of screens n1 thru n2    n1 n2 --
  202. ;=:   INTERPRET    outer text interpreter            --
  203. ;=:*  KEY    char input                -- c
  204. ;=C+  L!    intersegment store operator        n seg off --
  205. ;=C+  L@    intersegment fetch operator        seg off -- n
  206. ;=:   LATEST    return the top NFA in CURRENT        -- NFA
  207. ;=C+  LC!    intersegment byte store            b seg off --
  208. ;=C+  LC@    intersegment byte fetch            seg off -- b
  209. ;=C   LEAVE    force loop exit                --
  210. ;=:   LFA    convert a PFA to LFA            PFA -- LFA
  211. ;=#   LIMIT    last available memory address + 1    -- addr
  212. ;=:   LIST    list screen n, as 16 lines of 64 chars    n --
  213. ;=C   LIT    push an inline literal            -- n
  214. ;=:   LITERAL    compile n to be used at run time    n --
  215. ;=:   LOAD    interpret screen n            n --
  216. ;=:   LOOP    end of DO..LOOP structure        addr 3 --
  217. ;=:   M*    mixed multiplication            n1 n2 -- d
  218. ;=:   M/    mixed division                d n1 -- nrem nquot
  219. ;=:   M/MOD    mixed unsigned scaler            ud1 u -- urem udquot
  220. ;=C   MATCH    string search primtive            addr1 n addr2 n -- f addr3
  221. ;=:   MAX    return the larger of two numbers    n1 n2 -- n
  222. ;=#+  MAXBLOCK    highest valid block number        -- n
  223. ;=#+  MAXDRIVE    highest valid drive number        -- n
  224. ;=:   MESSAGE    type error message n            n --
  225. ;=:   MIN    return the smaller of n1 and n2        n1 n2 -- n
  226. ;=C   MINUS    16-bit two's complement            n -- -n
  227. ;=:   MOD    16-bit modulo division            n1 n2 -- nrem
  228. ;=C+  MYSEG    get FORTH's segment            -- seg
  229. ;=:*  NFA    convert a PFA to NFA            PFA -- NFA
  230. ;=:   NOOP    do nothing - no operation        --
  231. ;=:   NUMBER    convert string at addr to 32-bit number    addr -- d
  232. ;=U   OFFSET    number of lowest block to be used    -- addr
  233. ;=C   OR    bitwise OR                n n -- n
  234. ;=U   OUT    count of characters output        -- addr
  235. ;=C   OVER    copy second stack item to top        n1 n2 -- n1 n2 n1
  236. ;=C   P!    16-bit port output            n port# --
  237. ;=C   P@    16-bit port fetch            port# -- n
  238. ;=:   PAD    returns addr of the text output buffer    -- addr
  239. ;=C   PC!    send byte to port            b port# --
  240. ;=C   PC@    fetch byte from a port            port# --
  241. ;=:*  PFA    convert a NFA to PFA            NFA -- PFA
  242. ;=?   PREV    pointer to disk buffer last accessed    -- addr
  243. ;=?*  PRINTER    flag controlling printer        -- addr
  244. ;=:   QUERY    EXPECT 80 characters to TIB        --
  245. ;=:   QUIT    halt execution, reset interpreter    --
  246. ;=C   R        top of return stack to parm. stack    -- n
  247. ;=U   R#    current editing cursor location        -- addr
  248. ;=:*  R/W    block read/write, f=1=write, f=2=read    addr blk f --
  249. ;=U   R0    return stack base            -- addr
  250. ;=C   R>    pop return stack to parm. stack        -- n
  251. ;=#+  REC/BLK    number of disk records to fill 1 buffer    -- n
  252. ;=?+  RECORD    disk record last accessed        -- addr
  253. ;=:   REPEAT    end of BEGIN..WHILE..REPEAT structure    addr 1 --
  254. ;=C   ROT    bring the third stack item to top    n1 n2 n3 -- n2 n3 n1
  255. ;=C   RP!    reset return stack            ? --
  256. ;=C   RP@    push current RP onto parameter stack    -- RP
  257. ;=C   S->D    convert a 16-bit number to 32-bits    n -- d
  258. ;=U   S0    parameter stack base            -- addr
  259. ;=:+  SAVBUF    saves buffer at addr if updated        addr --
  260. ;=:+  SAVE-BUFFERS    flush buffers but don't empty    --
  261. ;=U   SCR    current screen                -- addr
  262. ;=:   SIGN    places a '-' in output if n < 0        n d -- d
  263. ;=:   SMUDGE    make the latest definition unFINDable    --
  264. ;=C   SP!    reset parameter stack            ? --
  265. ;=C   SP@    push current parameter stack pointer    -- SP
  266. ;=:   SPACE    output a blank                --
  267. ;=:   SPACES    type n spaces                n --
  268. ;=U   STATE    current interpreter state        -- addr
  269. ;=C   SWAP    exchange top two stack items        n1 n2 -- n2 n1
  270. ;=:   TASK    word to mark the end of the dictionary    --
  271. ;=:   THEN    synonym for ENDIF            addr 2 --
  272. ;=U   TIB    Terminal Input Buffer address        -- addr
  273. ;=C+  TIME!    set system time                n1 n2 --
  274. ;=C+  TIME@    fetch system time            -- n1 n2
  275. ;=C   TOGGLE    toggle bits at a memory location    n addr --
  276. ;=:   TRAVERSE    move across a fig-FORTH name field    addr1 n -- addr2
  277. ;=:   TRIAD    list screens in groups of three        n1 n2 --
  278. ;=:   TYPE    output n characters beginning at addr    addr n --
  279. ;=C   U*    unsigned mixed multiply            u1 u2 -- ud
  280. ;=:   U.    print an unsigned 16-bit number        u --
  281. ;=C   U/    unsigned mixed divide            ud u -- urem uquot
  282. ;=:   U<    unsigned test for top > next item    u1 u2 -- f
  283. ;=:   UNTIL    end of BEGIN..UNTIL loop        addr 1 --
  284. ;=:   UPDATE    mark PREV buffer to be saved        --
  285. ;=?   USE    pointer to disk buffer to use next    -- addr
  286. ;=:   USER    define a user variable            n --
  287. ;=:   VARIABLE    define a symbolic variable        n --
  288. ;=:   VLIST    print the words in CONTEXT vocabulary    --
  289. ;=U   VOC-LINK    pointer to top vocabulary        -- addr
  290. ;=:   VOCABULARY    define a new vocabulary        --
  291. ;=:   WARM    empty disk buffers and abort        --
  292. ;=U   WARNING    switch for error processing: 0, 1, -1    -- addr
  293. ;=:   WHILE    conditional loop BEGIN..WHILE..REPEAT    addr 2 -- HERE 4
  294. ;=U   WIDTH    maximum length of word names        -- addr
  295. ;=:   WORD    get a word delimited by char to HERE    c --
  296. ;=C   XOR    bitwise exclusive OR            n n -- n
  297. ;=:   [        suspend compilation to do calculations    --
  298. ;=:   [COMPILE]    compile an otherwise immediate word    --
  299. ;=:   ]        resume compilation after [        --i